﻿using System.Web;
using GigaSite.Domain.Entities;

namespace GigaSite.Domain.Interfaces.Repositories
{
    /// <summary>
    /// Абстрактный репозиторий изображений хранимых на сервере
    /// </summary>
    public interface IImagesRepository: IBaseRepository<Image>
    {
        /// <remarks>Данный метод дважды вызывает SubmitChanges так что нужно использовать его с осторожностью</remarks>
        /// <summary>
        /// Сохраняет указанное изображение в сервером хранилище изображений
        /// </summary>
        /// <param name="postedFile"></param>
        /// <returns></returns>
        Image SavePostedFile(HttpPostedFileBase postedFile);

        /// <summary>
        /// Получает полный URL изображения по его URI в системе хранения файлов
        /// </summary>
        /// <param name="imageURI">URI файла в системе хранения контента</param>
        /// <returns>Полный путь к файлу на сервере</returns>
        string GetFullImageURL(string imageURI);

        /// <summary>
        /// получает объект и данные по изображению
        /// </summary>
        /// <param name="imageURI">URI файла в системе хранения контента</param>
        /// <returns>Объект файла на сервере</returns>
        Image GetImage(string imageURI);
    }
}